package pdd.goods.add;

import com.alibaba.fastjson.annotation.JSONField;
import pdd.PddRequest;

/**
 * Created by gtx on 2018/6/25.
 * 上传商品到拼多多
 * @author gtx
 * @since 0.0.1
 */
public class GoodsAddRequest extends PddRequest<GoodsAddResponse> {
    /**
     * 商品标题  title
     */
    @JSONField(name = "goods_name")
    private String goodsName;
    /**
     * 1-国内普通商品，2-进口，3-直供（保税），4-直邮 ,5-流量 ,6-话费 ,7-优惠券 ,8-QQ充值 ,9-加油卡
     */
    @JSONField(name = "goods_type")
    private Integer goodsType;
    /**
     * 商品描述 字数限制：20-500 sellPoint
     */
    @JSONField(name = "goods_desc")
    private String goodsDesc;
    /**
     * 叶子类目ID cid
     */
    @JSONField(name = "cat_id")
    private Long catId;
    /**
     * 非必填 商品短标题（仅在部分活动中生效），字数限制为4-20字 smallTitle
     */
    @JSONField(name = "tiny_name")
    private String tinyName;
    /**
     * 国家ID，country_id可以通过pdd.goods.country.get获取，仅在goods_type为2、3时（海淘商品）入参生效
     */
    @JSONField(name = "country_id")
    private Long countryId;
    /**
     * 市场价格，单位为分 marketPrice
     */
    @JSONField(name = "market_price")
    private Long marketPrice;
    /**
     * 是否预售,true-预售商品，false-非预售商品
     */
    @JSONField(name = "is_pre_sale")
    private boolean preSale;
    /**
     * 预售时间，is_pre_sale为1时必传，UNIX时间戳
     */
    @JSONField(name = "pre_sale_time")
    private Long preSaleTime;
    /**
     * 承诺发货时间（ 秒），普通、进口商品可选48小时或24小时；直邮、直供商品只能入参120小时；is_pre_sale为1时不必传 delivery
     */
    @JSONField(name = "shipment_limit_second")
    private String shipmentLimitSecond;
    /**
     * 物流运费模板ID，可使用pdd.logistics.template.get获取 postage_id
     */
    @JSONField(name = "cost_template_id")
    private Long costTemplateId;
    /**
     * 非必填 团购人数 grouponer
     */
    @JSONField(name = "customer_num")
    private Integer customerNum;
    /**
     * 非必填 单次限量 singleLimit
     */
    @JSONField(name = "buy_limit")
    private Integer buyLimit;
    /**
     * 非必填 限购次数 purchaseLimit
     */
    @JSONField(name = "order_limit")
    private Integer orderLimit;
    /**
     * 是否7天无理由退换货，true-支持，false-不支持 returns
     */
    @JSONField(name = "is_refundable")
    private boolean refundable;
    /**
     * 是否二手商品，true -二手商品 ，false-全新商品
     */
    @JSONField(name = "second_hand")
    private boolean secondHand;
    /**
     * 是否支持假一赔十，false-不支持，true-支持 artificial
     */
    @JSONField(name = "is_folt")
    private Boolean isfolt;
    /**
     *
     sku对象列表 sku[]
     */
    @JSONField(name = "sku_list")
    private String skuList;
    /**
     * 非必填 商品goods外部编码 outerId
     */
    @JSONField(name = "out_goods_id")
    private String outGoodsId;
    /**
     * 高清缩略图，上传轮播图首图，尺寸400*400，图片格式仅支持JPG,PNG格式
     */
    @JSONField(name = "hd_thumb_url")
    private String hdThumbUrl;
    /**
     * 普通缩略图，上传轮播图首图，尺寸200*200，图片格式仅支持JPG,PNG格式
     */
    @JSONField(name = "thumb_url")
    private String thumbUrl;
    /**
     * 非必填 商品主图，请参考拼多多首页大图，如果商品参加部分活动则必填，否则无法参加活动
     * a. 尺寸750 x 352px
     * b. 大小100k以内
     * c. 图片格式仅支持JPG,PNG格式
     * d. 图片背景应以纯白为主, 商品图案居中显示
     * e. 图片不可以添加任何品牌相关文字或logo
     */
    @JSONField(name = "image_url")
    private String imageUrl;
    /**
     * 商品轮播图，按次序上传，图片格式支持JPEG/JPG/PNG，
     * 图片尺寸长宽比1：1且尺寸不低于480px，图片大小最高1MB
     */
    @JSONField(name = "carousel_gallery")
    private String carouselGallery;
    /**
     * 商品详情图：
     * a. 尺寸要求宽度处于480~1200px之间，高度0-1500px之间
     * b. 大小1M以内
     * c. 数量限制在20张之间
     * d. 图片格式仅支持JPG,PNG格式
     * e. 点击上传时，支持批量上传详情图
     */
    @JSONField(name = "detail_gallery")
    private String detailGallery;
    /**
     * 服饰面料
     */
    @JSONField(name = "fabric")
    private Long fabric;
    /**
     * 成分含量
     */
    @JSONField(name = "fabric_content")
    private Long fabricContent;

    public String getGoodsName() {
        return goodsName;
    }

    public void setGoodsName(String goodsName) {
        this.goodsName = goodsName;
    }

    public Integer getGoodsType() {
        return goodsType;
    }

    public void setGoodsType(Integer goodsType) {
        this.goodsType = goodsType;
    }

    public String getGoodsDesc() {
        return goodsDesc;
    }

    public void setGoodsDesc(String goodsDesc) {
        this.goodsDesc = goodsDesc;
    }

    public Long getCatId() {
        return catId;
    }

    public void setCatId(Long catId) {
        this.catId = catId;
    }

    public String getTinyName() {
        return tinyName;
    }

    public void setTinyName(String tinyName) {
        this.tinyName = tinyName;
    }

    public Long getCountryId() {
        return countryId;
    }

    public void setCountryId(Long countryId) {
        this.countryId = countryId;
    }

    public Long getMarketPrice() {
        return marketPrice;
    }

    public void setMarketPrice(Long marketPrice) {
        this.marketPrice = marketPrice;
    }

    public boolean isPreSale() {
        return preSale;
    }

    public void setPreSale(boolean preSale) {
        this.preSale = preSale;
    }

    public Long getPreSaleTime() {
        return preSaleTime;
    }

    public void setPreSaleTime(Long preSaleTime) {
        this.preSaleTime = preSaleTime;
    }

    public String getShipmentLimitSecond() {
        return shipmentLimitSecond;
    }

    public void setShipmentLimitSecond(String shipmentLimitSecond) {
        this.shipmentLimitSecond = shipmentLimitSecond;
    }

    public Long getCostTemplateId() {
        return costTemplateId;
    }

    public void setCostTemplateId(Long costTemplateId) {
        this.costTemplateId = costTemplateId;
    }

    public Integer getCustomerNum() {
        return customerNum;
    }

    public void setCustomerNum(Integer customerNum) {
        this.customerNum = customerNum;
    }

    public Integer getBuyLimit() {
        return buyLimit;
    }

    public void setBuyLimit(Integer buyLimit) {
        this.buyLimit = buyLimit;
    }

    public Integer getOrderLimit() {
        return orderLimit;
    }

    public void setOrderLimit(Integer orderLimit) {
        this.orderLimit = orderLimit;
    }

    public boolean isRefundable() {
        return refundable;
    }

    public void setRefundable(boolean refundable) {
        this.refundable = refundable;
    }

    public boolean isSecondHand() {
        return secondHand;
    }

    public void setSecondHand(boolean secondHand) {
        this.secondHand = secondHand;
    }

    public Boolean getIsfolt() {
        return isfolt;
    }

    public void setIsfolt(Boolean isfolt) {
        this.isfolt = isfolt;
    }

    public String getSkuList() {
        return skuList;
    }

    public void setSkuList(String skuList) {
        this.skuList = skuList;
    }

    public String getOutGoodsId() {
        return outGoodsId;
    }

    public void setOutGoodsId(String outGoodsId) {
        this.outGoodsId = outGoodsId;
    }

    public String getHdThumbUrl() {
        return hdThumbUrl;
    }

    public void setHdThumbUrl(String hdThumbUrl) {
        this.hdThumbUrl = hdThumbUrl;
    }

    public String getThumbUrl() {
        return thumbUrl;
    }

    public void setThumbUrl(String thumbUrl) {
        this.thumbUrl = thumbUrl;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public void setImageUrl(String imageUrl) {
        this.imageUrl = imageUrl;
    }

    public String getCarouselGallery() {
        return carouselGallery;
    }

    public void setCarouselGallery(String carouselGallery) {
        this.carouselGallery = carouselGallery;
    }

    public String getDetailGallery() {
        return detailGallery;
    }

    public void setDetailGallery(String detailGallery) {
        this.detailGallery = detailGallery;
    }

    public Long getFabric() {
        return fabric;
    }

    public void setFabric(Long fabric) {
        this.fabric = fabric;
    }

    public Long getFabricContent() {
        return fabricContent;
    }

    public void setFabricContent(Long fabricContent) {
        this.fabricContent = fabricContent;
    }
}
